#pragma once

#include "controlcenter_global.h"
#include "MainManipulator.h"
#include "planedragger.h"

namespace ControlCenter
{
	class CONTROLCENTER_EXPORT HotPointManipulator:public MainManipulator
	{
	public:
		HotPointManipulator();
		virtual void mouseClick(const osgGA::GUIEventAdapter* ea0,const osgGA::GUIEventAdapter* ea1,
			const osgGA::GUIEventAdapter* key0,const osgGA::GUIEventAdapter* key1);
		virtual void mouseRelease(const osgGA::GUIEventAdapter* ea0,const osgGA::GUIEventAdapter* ea1,
			const osgGA::GUIEventAdapter* key0,const osgGA::GUIEventAdapter* key1);
		virtual void mouseDrag(const osgGA::GUIEventAdapter* ea0,const osgGA::GUIEventAdapter* ea1,
			const osgGA::GUIEventAdapter* key0,const osgGA::GUIEventAdapter* key1);
		virtual void setToolAction(ActionData* action);
		virtual void mouseDoubleClick(const osgGA::GUIEventAdapter* ea0,const osgGA::GUIEventAdapter* ea1,
			const osgGA::GUIEventAdapter* key0,const osgGA::GUIEventAdapter* key1){}
	protected:
		virtual ~HotPointManipulator();
		bool testCreateObject();
		CoreBase::ActorBase*						_createActor;
		osg::Vec3									_moveObjectsStartPos;
		osg::Vec3									_moveObjectsStartRota;
		CoreBase::ActorBase*						_editActor;
		QString										_hotPointSizeProperty;
		osg::Vec3									_alignVec;
		//osg::ref_ptr<PlaneDragger>				_planeDragger;
	};
}